Don't set the background for input only window
authorAlexander Larsson <alexl@redhat.com>
Wed, 4 Feb 2009 19:21:02 +0000 (20:21 +0100)
committerAlexander Larsson <alex@localhost.localdomain>
Thu, 2 Apr 2009 08:15:33 +0000 (10:15 +0200)
This is not allowed and will cause X errors.

gdk/gdkwindow.c

index 87101534155431efe10d82891ca93f8754765e2c..4a2153d89e727eaed1ffa0fefec47baf2f058a9b 100644 (file)
@@ -1310,9 +1310,12 @@ gdk_window_set_has_native (GdkWindow *window, gboolean has_native)
 
       reparent_to_impl (private);
 
-      GDK_WINDOW_IMPL_GET_IFACE (private->impl)->set_background (window, &private->bg_color);
-      if (private->bg_pixmap != NULL)
-       GDK_WINDOW_IMPL_GET_IFACE (private->impl)->set_back_pixmap (window, private->bg_pixmap);
+      if (!private->input_only)
+       {
+         GDK_WINDOW_IMPL_GET_IFACE (private->impl)->set_background (window, &private->bg_color);
+         if (private->bg_pixmap != NULL)
+           GDK_WINDOW_IMPL_GET_IFACE (private->impl)->set_back_pixmap (window, private->bg_pixmap);
+       }
       
       GDK_WINDOW_IMPL_GET_IFACE (private->impl)->input_shape_combine_region ((GdkWindow *)private, private->input_shape, 0, 0);
 
@@ -6502,7 +6505,9 @@ gdk_window_set_background (GdkWindow      *window,
   
   private->bg_pixmap = NULL;
 
-  if (!GDK_WINDOW_DESTROYED (window) && gdk_window_has_impl (private))
+  if (!GDK_WINDOW_DESTROYED (window) &&
+      gdk_window_has_impl (private) &&
+      !private->input_only)
     GDK_WINDOW_IMPL_GET_IFACE (private->impl)->set_background (window, &private->bg_color);
 }
 
@@ -6563,7 +6568,9 @@ gdk_window_set_back_pixmap (GdkWindow *window,
   else
     private->bg_pixmap = GDK_NO_BG;
   
-  if (!GDK_WINDOW_DESTROYED (window) && gdk_window_has_impl (private))
+  if (!GDK_WINDOW_DESTROYED (window) &&
+      gdk_window_has_impl (private) &&
+      !private->input_only)
     GDK_WINDOW_IMPL_GET_IFACE (private->impl)->set_back_pixmap (window, private->bg_pixmap);
 }